Revert "Enable some functions that seem to work now"
authorFelix Krull <f_krull@gmx.de>
Wed, 28 Aug 2019 21:26:24 +0000 (23:26 +0200)
committerColin Walters <walters@verbum.org>
Fri, 6 May 2022 16:53:54 +0000 (12:53 -0400)
This reverts commit 20a74e0d

Whoops, forgot --all-features

rust-bindings/rust/conf/ostree.toml
rust-bindings/rust/src/auto/repo.rs

index e59b27fe258977e55f8309c23e100fce7aba479b..2cc3591aff074a2233d1c292eca261c0120163e9 100644 (file)
@@ -135,6 +135,11 @@ status = "generate"
     name = "write_content_async"
     ignore = true
 
+    [[object.function]]
+    # these fail because of issues with zero-terminated arrays
+    pattern = "find_remotes_async|pull_from_remotes_async"
+    ignore = true
+
     [[object.function]]
     # this is deprecated and supposedly unsafe for GI
     name = "checkout_tree_at"
index b174ffc01d40f523ed5507a07996e0b810773f3d..9d96a25ce3be7940851d3a235d7e739f7089f9ff 100644 (file)
@@ -20,8 +20,6 @@ use RepoCommitModifier;
 use RepoCommitState;
 use RepoFile;
 #[cfg(any(feature = "v2018_6", feature = "dox"))]
-use RepoFinder;
-#[cfg(any(feature = "v2018_6", feature = "dox"))]
 use RepoFinderResult;
 use RepoMode;
 use RepoPruneFlags;
@@ -31,12 +29,7 @@ use RepoRemoteChange;
 use RepoResolveRevExtFlags;
 use RepoTransactionStats;
 use StaticDeltaGenerateOpt;
-#[cfg(feature = "futures")]
-#[cfg(any(feature = "v2018_6", feature = "dox"))]
-use futures::future;
 use gio;
-#[cfg(any(feature = "v2018_6", feature = "dox"))]
-use gio_sys;
 use glib;
 use glib::GString;
 use glib::StaticType;
@@ -176,50 +169,6 @@ impl Repo {
     //    unsafe { TODO: call ostree_sys:ostree_repo_export_tree_to_archive() }
     //}
 
-    #[cfg(any(feature = "v2018_6", feature = "dox"))]
-    pub fn find_remotes_async<P: IsA<AsyncProgress>, Q: IsA<gio::Cancellable>, R: FnOnce(Result<Vec<RepoFinderResult>, Error>) + Send + 'static>(&self, refs: &[&CollectionRef], options: Option<&glib::Variant>, finders: &[RepoFinder], progress: Option<&P>, cancellable: Option<&Q>, callback: R) {
-        let user_data: Box<R> = Box::new(callback);
-        unsafe extern "C" fn find_remotes_async_trampoline<R: FnOnce(Result<Vec<RepoFinderResult>, Error>) + Send + 'static>(_source_object: *mut gobject_sys::GObject, res: *mut gio_sys::GAsyncResult, user_data: glib_sys::gpointer) {
-            let mut error = ptr::null_mut();
-            let ret = ostree_sys::ostree_repo_find_remotes_finish(_source_object as *mut _, res, &mut error);
-            let result = if error.is_null() { Ok(FromGlibPtrContainer::from_glib_full(ret)) } else { Err(from_glib_full(error)) };
-            let callback: Box<R> = Box::from_raw(user_data as *mut _);
-            callback(result);
-        }
-        let callback = find_remotes_async_trampoline::<R>;
-        unsafe {
-            ostree_sys::ostree_repo_find_remotes_async(self.to_glib_none().0, refs.to_glib_none().0, options.to_glib_none().0, finders.to_glib_none().0, progress.map(|p| p.as_ref()).to_glib_none().0, cancellable.map(|p| p.as_ref()).to_glib_none().0, Some(callback), Box::into_raw(user_data) as *mut _);
-        }
-    }
-
-    #[cfg(feature = "futures")]
-    #[cfg(any(feature = "v2018_6", feature = "dox"))]
-    pub fn find_remotes_async_future<P: IsA<AsyncProgress> + Clone + 'static>(&self, refs: &[&CollectionRef], options: Option<&glib::Variant>, finders: &[RepoFinder], progress: Option<&P>) -> Box_<dyn future::Future<Output = Result<Vec<RepoFinderResult>, Error>> + std::marker::Unpin> {
-        use gio::GioFuture;
-        use fragile::Fragile;
-
-        let refs = refs.clone();
-        let options = options.map(ToOwned::to_owned);
-        let finders = finders.clone();
-        let progress = progress.map(ToOwned::to_owned);
-        GioFuture::new(self, move |obj, send| {
-            let cancellable = gio::Cancellable::new();
-            let send = Fragile::new(send);
-            obj.find_remotes_async(
-                &refs,
-                options.as_ref().map(::std::borrow::Borrow::borrow),
-                &finders,
-                progress.as_ref().map(::std::borrow::Borrow::borrow),
-                Some(&cancellable),
-                move |res| {
-                    let _ = send.into_inner().send(res);
-                },
-            );
-
-            cancellable
-        })
-    }
-
     #[cfg(any(feature = "v2017_15", feature = "dox"))]
     pub fn fsck_object<P: IsA<gio::Cancellable>>(&self, objtype: ObjectType, sha256: &str, cancellable: Option<&P>) -> Result<(), Error> {
         unsafe {
@@ -530,48 +479,6 @@ impl Repo {
         }
     }
 
-    #[cfg(any(feature = "v2018_6", feature = "dox"))]
-    pub fn pull_from_remotes_async<P: IsA<AsyncProgress>, Q: IsA<gio::Cancellable>, R: FnOnce(Result<(), Error>) + Send + 'static>(&self, results: &[&RepoFinderResult], options: Option<&glib::Variant>, progress: Option<&P>, cancellable: Option<&Q>, callback: R) {
-        let user_data: Box<R> = Box::new(callback);
-        unsafe extern "C" fn pull_from_remotes_async_trampoline<R: FnOnce(Result<(), Error>) + Send + 'static>(_source_object: *mut gobject_sys::GObject, res: *mut gio_sys::GAsyncResult, user_data: glib_sys::gpointer) {
-            let mut error = ptr::null_mut();
-            let _ = ostree_sys::ostree_repo_pull_from_remotes_finish(_source_object as *mut _, res, &mut error);
-            let result = if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) };
-            let callback: Box<R> = Box::from_raw(user_data as *mut _);
-            callback(result);
-        }
-        let callback = pull_from_remotes_async_trampoline::<R>;
-        unsafe {
-            ostree_sys::ostree_repo_pull_from_remotes_async(self.to_glib_none().0, results.to_glib_none().0, options.to_glib_none().0, progress.map(|p| p.as_ref()).to_glib_none().0, cancellable.map(|p| p.as_ref()).to_glib_none().0, Some(callback), Box::into_raw(user_data) as *mut _);
-        }
-    }
-
-    #[cfg(feature = "futures")]
-    #[cfg(any(feature = "v2018_6", feature = "dox"))]
-    pub fn pull_from_remotes_async_future<P: IsA<AsyncProgress> + Clone + 'static>(&self, results: &[&RepoFinderResult], options: Option<&glib::Variant>, progress: Option<&P>) -> Box_<dyn future::Future<Output = Result<(), Error>> + std::marker::Unpin> {
-        use gio::GioFuture;
-        use fragile::Fragile;
-
-        let results = results.clone();
-        let options = options.map(ToOwned::to_owned);
-        let progress = progress.map(ToOwned::to_owned);
-        GioFuture::new(self, move |obj, send| {
-            let cancellable = gio::Cancellable::new();
-            let send = Fragile::new(send);
-            obj.pull_from_remotes_async(
-                &results,
-                options.as_ref().map(::std::borrow::Borrow::borrow),
-                progress.as_ref().map(::std::borrow::Borrow::borrow),
-                Some(&cancellable),
-                move |res| {
-                    let _ = send.into_inner().send(res);
-                },
-            );
-
-            cancellable
-        })
-    }
-
     pub fn pull_one_dir<P: IsA<AsyncProgress>, Q: IsA<gio::Cancellable>>(&self, remote_name: &str, dir_to_pull: &str, refs_to_fetch: &[&str], flags: RepoPullFlags, progress: Option<&P>, cancellable: Option<&Q>) -> Result<(), Error> {
         unsafe {
             let mut error = ptr::null_mut();